package com.xiaoshuidi.cloud.module.member.controller.app.coupon.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xiaoshuidi.cloud.module.member.controller.admin.coupon.vo.CouponApartmentVO;
import com.xiaoshuidi.cloud.module.member.enums.coupon.CouponTypeEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

@Data
public class CouponCustomerValidQueryVo {

	private Boolean isLocked;
	/**
	 * 优惠券id
	 */
	@Schema(description ="优惠券id")
	private Long id;

//	@Schema(description ="门店id")
//	private Long activityStore;
	/**
	 * 客户优惠券id
	 */
	@Schema(description ="客户优惠券id")
	private Long couponId;
	/**
	 * 优惠券名称
	 */
	@Schema(description ="优惠券名称")
	private String couponName;
	/**
	 * 优惠券类型 1预定优惠|2老带新优惠|3新签约优惠|4 内部员工优惠|5其他优惠
	 */
	@Schema(description =" 优惠券类型 1预定优惠|2老带新优惠|3新签约优惠|4 内部员工优惠|5其他优惠")
	private Integer couponType;

	@Schema(description ="可用费项")
	private String usableFee = "租金可用";

	@Schema(description ="优惠类型")
	private String couponTypeDesc;

	@Schema(description ="有效时间-起始日期")
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date startTime;

	@Schema(description ="有效时间-截止日期")
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date endTime;

	@Schema(description ="使用状态 1待使用 |2 已作废|3已使用|4已过期")
	private Integer usageStatus;

	@Schema(description ="使用规则")
	private String useRules;

	@Schema(description ="优惠类型 0-立减   1-折扣")
	private Integer preferentialContentType;

	@Schema(description ="实际优惠 优惠类型为立减时为金额，为折扣时对应几折")
	private BigDecimal realityPreferentialAmount;

	@Schema(description ="优惠金额百分比")
	private BigDecimal preferentialAmount;

	@Schema(description = " * 使用叠加 排他[]  1只能与同一优惠可叠加使用[1] |2 与其他活动可叠加使用[2] 无限制[1,2]")
	private String couponUseOverlay;

	@Schema(description ="最低租赁月份")
	private Integer miniLeaseMonth;
	/**
	 * 最高租赁月份
	 */
	@Schema(description ="最高租赁月份")
	private Integer maxLeaseMonth;


	@Schema(description ="租客id")
	private Long userId;

	/**
	 * 使用开始时间
	 */
	private Date expirationStartTime;
	/**
	 * 使用结束时间
	 */
	private Date expirationEndTime;

	/**
	 * 签约开始日期
	 */
	private Date signingStartTime;
	/**
	 * 签约结束时间
	 */
	private Date signingEndTime;

	@Schema(description = "活动门店 -支持多门店")
	private List<CouponApartmentVO> apartmentIds;

	public String getCouponTypeDesc() {
		return CouponTypeEnum.getDesc(couponType);
	}

}